package main

import "fmt"

// switch
// 简化大量判断操作（一个变量和值比较）
func main() {
	var n = 10
	switch n {
	case 1:
		fmt.Print(1)
	case 2:
		fmt.Print(2)
	case 5:
		fmt.Print(5)
	default:
		fmt.Println("not is 1 or 2 or 5")
	}

	// 简化写法
	switch n := 2; n {
	case 1, 3, 5, 7, 9:
		fmt.Println("奇数")
	case 2, 4, 6, 8:
		fmt.Println("偶数")
	default:
		fmt.Println(n)
	}

	// 变种写法：
	age := 18
	switch {
	case age > 18:
		fmt.Println("成年了")
	case age > 0:
		fmt.Println("未成年")
	}

	// fallthrough 满足条件向下传统一个case，go中是为了兼容c语言中的case设计的（不推荐使用）
	s := "a"
	switch {
	case s == "a":
		fmt.Println("s == a")
		fallthrough
	case s == "b":
		fmt.Println("s == b")
	default:
		fmt.Println(s)
	}
}
